package activitiShare.one;

// ListenerExecutor.java
public class ListenerExecutor {
    public static void main(String[] args) {
        try {
            // 1. 假设我们从配置文件或 BPMN 中读取的类名
            String className = "activitiShare.one.MyTaskListener"; // 请确保这个类在 classpath 中

            // 2. 使用反射加载类
            Class<?> clazz = Class.forName(className);

            // 3. 实例化对象
            Object instance = clazz.getDeclaredConstructor().newInstance();

            // 4. 检查是否实现了 TaskListener 接口
            if (instance instanceof TaskListener) {
                TaskListener listener = (TaskListener) instance;

                // 5. 调用 notify 方法，模拟任务事件触发
                listener.notify("审批任务");
            } else {
                System.out.println("该类未实现 TaskListener 接口");
            }

//            // 4. 检查是否实现了 ExecutionListener 接口
//            if (instance instanceof ExecutionListener) {
//                ExecutionListener listener = (ExecutionListener) instance;
//
//                // 5. 调用 notify 方法，模拟执行事件触发
//                listener.notify(System.currentTimeMillis());
//            } else {
//                System.out.println("该类未实现 TaskListener 接口");
//            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
